package com.jt.consumer.service;

import feign.hystrix.FallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

/*注解描述的接口为远程服务调用接口
* 此接口中我们应该定义这写元素：
* 1，你要调用的服务？一般用服务名进行标识
* 2，访问服务中的什么资源?数据 资源标识是什么？url
* 3，对服务中的资源进行什么操作？crud
* 4，资源访问不到怎么办？操作资源的过程中出现异常怎么办？预案
* 此接口是否需要我们自己写实现类？不需要，由底层创建实现类。我们只做声明即可
* 此接口对应的对象会交给spring管理吗？会,这个对象是一个代理对象
* 此对象默认的bean名称是什么？（假如没有指定，则默认使用name或value属性的值，
* 推荐基于contextId手动指定一个名字）
* */
@FeignClient(value = "sca-provider",
        contextId = "remoteProviderService",
fallbackFactory = ProviderFallbackFactory.class)
public interface RemoteProviderService {
    //Rest风格：通过URI定义资源，通过请求动作操作资源
    @GetMapping("/provider/echo/{string}")
    String echoMessage(@PathVariable("string") String msg);



}
